﻿Public Class xtf_LISTADOusuario_

    Public Overrides Sub IniciarLista()
        Try
            gdc_general.BeginUpdate()
            gdc_general.DataSource = dtt_DataTable
            'ulg_Lista.DisplayLayout.GroupByBox.Style = Infragistics.Win.UltraWinGrid.GroupByBoxStyle.Full

            'Creacion y carga de Cuentas
            dtt_DataTable.Columns.Add("Identificador (ID)")
            dtt_DataTable.Columns.Add("Usuario")
            dtt_DataTable.Columns.Add("Grupo Acceso")
            dtt_DataTable.Columns.Add("Apellido")
            dtt_DataTable.Columns.Add("Nombre")

            gdv_general.PopulateColumns(dtt_DataTable)

            Dim obj_Usuario_ As New cls_Usuario_
            If obj_Usuario_.CargarTodos(ObtenerRegistroEstado) Then
                For Each Usuario As cls_usuario_ In obj_Usuario_.Items
                    AgregarItem(Usuario)
                Next
            End If
            'ulg_Lista.DataBind()

            FiltrarColumnas()
            gdc_general.EndUpdate()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Function AgregarItem(ByRef Usuario As cls_usuario_) As DataRow
        If UsuarioLOG.esroot = True Or Usuario.idusuario <> 1 Then
            Dim Row As DataRow = dtt_DataTable.NewRow
            Row("Identificador (ID)") = Usuario.idusuario
            Row("Usuario") = Usuario.usuario
            Row("Grupo Acceso") = Usuario.grupo
            If Not IsNothing(Usuario.tercero) Then
                Row("Apellido") = Usuario.tercero.apellido
                Row("Nombre") = Usuario.tercero.nombres
            End If

            dtt_DataTable.Rows.Add(Row)
            'ulg_Lista.Rows(ulg_Lista.Rows.Count - 1).Height = 19
            Return Row
        End If
    End Function

    Public Sub ModificarItem(ByRef Usuario As cls_usuario_, ByRef ulg_row As DataRow)
        ulg_row("Identificador (ID)") = Usuario.idUsuario
        ulg_row("Usuario") = Usuario.usuario
        ulg_row("Grupo Acceso") = Usuario.grupo
        If Not IsNothing(Usuario.tercero) Then
            ulg_row("Apellido") = Usuario.tercero.apellido
            ulg_row("Nombre") = Usuario.tercero.nombres
        End If
    End Sub

    Public Sub New()

        Me.Cursor = Cursors.WaitCursor
        InitializeComponent()
        PERMISONuevo = "002002002"
        PERMISOModificar = "002002003"
        PERMISOEliminar = "002002004"
        PERMISOImprimir = "002002005"
        Me.Text = lbl_modulo.Text : lbl_modulodescripcion.Text = "Listado de " & lbl_modulo.Text & "."
        IniciarLista()
        Me.Cursor = Cursors.Default

    End Sub

    Public Overrides Sub bbi_Eliminar_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISOEliminar) Then
            Try
                If gdv_general.SelectedRowsCount > 0 Then
                    If ErrManagerShow("000005", Me) = DialogResult.Yes Then

                        Dim objeto As Object
                        objeto = Activator.CreateInstance(Type.GetType(Replace(Application.ProductName, " ", "_") & "." & Replace(Me.Name, "xtf_LISTADO", "cls_"), True, True))
                        If gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)") <> 1 Then

                            Dim eliminarRegistro As Boolean = False
                            If UsuarioLOG.esroot Then
                                If ErrManagerShow("001023", Me) = DialogResult.Yes Then
                                    eliminarRegistro = True
                                End If
                            End If

                            If eliminarRegistro Then
                                objeto.Eliminar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)"))
                            Else
                                objeto.buscar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)"))
                                objeto.registro.idregistroestado = 2
                                objeto.modificar()
                            End If

                            dtt_DataTable.Rows.Remove(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0)))


                        Else
                            ErrManagerShow("Restriccion de sistema.", "No se puede realizar la operacion solicitada." & vbNewLine & "Accion o registro protegido por sistema.", DevEx.xtf_ErrManagerAlerta.errManagerImg.img_Error, DevEx.xtf_ErrManagerAlerta.errManagerBtn.btn_Aceptar)
                        End If

                    End If
                End If
            Catch ex As Exception
                'Dim frmError As New frm_ErrorManager(ex.Message)
            End Try
        End If

    End Sub
End Class